package main

import (
	"fmt"
)

func main() {

	// 1. if ... else if ... else
	// if xxx {

	// } else if xxx {

	// } else {

	// }

	// 2. switch
	// go 的 switch 不带 break 执行完一个 case 之后就会退出
	var key string = "1"
	switch key {
	// case 后面可以跟多个条件，但是前提是该条件在下面没有出现，否则会报错
	case "1", "0":
		fmt.Println("1")
	case "2":
		fmt.Println("2")
	case "3":
		fmt.Println("3")
	// default 语句不是必须的
	default:
		fmt.Println("other ...")

	}

	// switch 可以不带条件表达式功能类似于 if ... else 分支
	var age = 2
	switch {
	case age == 2:
		fmt.Println("1")
		// 穿透继续执行下一个 case 语句，默认只能穿透一层，即便是下一条case语句不成立也能够执行
		fallthrough
	case age == 20:
		fmt.Println("2")
	case age == 3:
		fmt.Println("3")
	// default 语句不是必须的
	default:
		fmt.Println("other ...")

	}

}
